/**  
* @Title: UserHouseService.java
* @Package com.house.service.user
* @version V1.0  
*/ 
package com.hjb.service.user;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.hjb.service.domain.Collect;
import com.hjb.service.domain.Reservation;

/**
* @ClassName: UserHouseService
* @Description: TODO(用户租房中心)
* @author <a href="mailto:125671254@qq.com">Pan Xinwen</a>
* @date 2017年5月4日 下午4:15:54
*/
public interface UserHouseService {

	/**
	 * 查询房源是否被用户收藏
	* @Title: getCollectHouseByHouseId
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param houseId
	* @param @return    设定文件
	* @return Map<String,Object>    返回类型
	* @throws
	 */
	public Collect getCollectHouseByHouseId(String userId,String houseId);

	/**
	 * 收藏/取消收藏
	* @Title: subscribeHouse
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param userId
	* @param @param houseId    设定文件
	* @return void    返回类型
	* @throws
	 */
	public void collectHouse(String userId, String houseId,String sign);

	/**
	 * 
	* @Title: subscribeByHouse
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param reservationTime 预约时间
	* @param @param mobileNo 预约人电话
	* @param @param memberName 预约人姓名
	* @param @param userId 发起预约者
	* @param @param houseId 房源ID
	* @param @param sign 标记(1:取消预约 2：正常预约)
	* @return void    返回类型
	* @throws
	 */
	public int subscribeByHouse(String reservationTime,String mobileNo,String memberName,String userId, String houseId, String sign,String rentNo,String roomNo);

	/**
	* @Title: isSubscribeByHouseId
	* @Description: TODO(查询房源是否被自己预约)
	* @param @param houseId
	* @param @return    设定文件
	* @return Reservation    返回类型
	* @throws
	 */
	public Reservation isSubscribeByHouseId(String houseId,String userId);

	/**
	 * 查询用户收藏的房源
	* @Title: getCollectHouse
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param string
	* @param @return    设定文件
	* @return List<Collect>    返回类型
	* @throws
	 */
	public List<Map<String,Object>> getCollectHouse(String string);

	/**
	 * 
	* @Title: getUserReservation
	* @Description: TODO(查询用户预约的房源)
	* @param @param userId    设定文件
	* @return void    返回类型
	* @throws
	 */
	public List<Map<String,Object>> getUserReservation(String userId);

	/**
	 * 用户取消预约
	* @Title: abolishSub
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param string
	* @param @param parameter
	* @param @return    设定文件
	* @return String    返回类型
	* @throws
	 */
	public int abolishSub(String userId, String sign);

	/**
	 * 帮我找房
	* @Title: searchHouse
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param request
	* @param @return    设定文件
	* @return int    返回类型
	* @throws
	 */
	public int searchHouse(HttpServletRequest request);

	/**
	 * 查询用户可能喜欢的
	* @Title: searchYhxhd
	* @Description: TODO()
	* @param request
	* @return    
	* @return int
	 */
	public List<Map<String,Object>> searchYhxhd(HttpServletRequest request);
	
}
